package com.copa.l160;

/**
 * @author copa
 * @createDate 2022-08-04 10:07
 * @function 双指针（重复遍历）
 */
public class Test2 {

    public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
        ListNode pa = headA;
        ListNode pb = headB;
        while (pa != pb) {
            // 这个结束条件 要不有交点 要不就null == null 也就是没有交点
            pa = pa == null ? headB : pa.next;
            pb = pb == null ? headA : pb.next;
        }
        return pa;
    }

    public static void main(String[] args) {
//        ListNode headA = new ListNode(4);
//        ListNode headB = new ListNode(5);
//        headA.next = new ListNode(1);
//        headB.next = new ListNode(6);
//        headA.next.next = new ListNode(8);
//        headB.next.next = new ListNode(1);
//        headA.next.next.next = new ListNode(4);
//        headB.next.next.next = headA.next.next.next;
//        headA.next.next.next.next = new ListNode(5);

        ListNode headA = new ListNode(1);
        ListNode headB = new ListNode(2);
        headB.next = new ListNode(3);
        System.out.println(new Test2().getIntersectionNode(headA, headB).val);
    }
}
